package control;

import java.util.List;

import javax.el.ELContext;
import javax.faces.context.FacesContext;

import model.Aluno;
import model.Turma;
import dao.DAOAluno;
import dao.DAOTurma;
	
public class MatriculaBean  {
	
	private DAOTurma daoturma;
	private DAOAluno daoaluno;
	private List<Turma> turmasdisponiveis;
	private String num_turma,msg;

	public String getNum_turma() {
		return num_turma;
	}

	public void setNum_turma(String num_turma) {
		this.num_turma = num_turma;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}
	
	public Aluno getAlunoInstance(){
		FacesContext fc = FacesContext.getCurrentInstance();
		ELContext el = fc.getELContext();
		LoginBean lb = (LoginBean) fc.getApplication().getELResolver()
				.getValue(el, null, "loginBean");
		return (Aluno)lb.getLogado();
	}

	public List<Turma> getTurmas (){
		daoturma = new DAOTurma();
		Aluno logado = getAlunoInstance();
		turmasdisponiveis = daoturma.findTurmasDisponiveis(logado);
		return turmasdisponiveis;
	}
	
	public void matricular(){
		daoturma = new DAOTurma();
		daoaluno = new DAOAluno();
		Turma t = daoturma.find(Integer.parseInt(num_turma));
		Aluno a = daoaluno.find(getAlunoInstance());
		try {
				if (t.getCapacidade() >= 0){
					daoturma.begin();
					t.addAluno(a);
					daoaluno.merge(a);
					daoturma.merge(t);
					daoturma.commit();
				}
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	
	
}
